package com.ikas.ai.server.module.steady.model.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * 稳态监测测点配置表
 *
 * @author wuyf
 * @since 2023-12-13
 */
@Data
public class StyMonMeteSaveDto implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 机组编号
     */
    @NotBlank(message = "机组编号不能为空")
    private String machineNo;

    /**
     * 测点id
     */
    @NotNull(message = "测点id不能为空")
    private Long meteId;
    /**
     * 测点编码
     */
    @NotBlank(message = "测点编码不能为空")
    private String meteCode;

    /**
     * 测点名称
     */
    private String meteName;

    /**
     * 稳态属性：0：停机稳态，1：运行稳态
     */
    @NotNull(message = "运行或停机稳态属性不能为空")
    private Integer steadyType;

    /**
     * 监测描述
     */
    @Size(max = 100, message = "监测描述长度请限制在100个字符以内")
    private String monitorDesc;

    /**
     * 监测类型 0：阈值监测，1：趋势监测
     */
    @NotNull(message = "监测类型不能为空")
    private Integer monitorType;

    /**
     * 延迟预警时长(s)
     */
    private Integer delayAlarmDuration;

    /**
     * 趋势持续时长(s)
     */
    private Integer trendDuration;

    /**
     * 预警条件 gt：大于，ge：大于等于，lt：小于，le：小于等于，up：上升，down：下降
     */
    @NotNull(message = "预警条件不能为空")
    private Integer alarmCondition;

    /**
     * 预警阈值
     */
    @NotNull(message = "预警阈值不能为空")
    private Double alarmThreshold;
}
